/**
 * gulp config file
 * author: Jevon
 * date: 2015-11-22
 */

var gulp = require('gulp');
var less = require('gulp-less');
var minifyCSS = require('gulp-minify-css');
var uglify = require('gulp-uglify');
var browserSync = require('browser-sync').create();
var reload = browserSync.reload;

// 配置文件
var rocket = {
    less : {
        dest: './assets/style',
        src: './source/less/*.less'
    },
    js: {
        dest: './assets/js',
        src: './source/js/*.js'
    }
}

// 开发服务器
gulp.task('browser-sync', function() {
    // browserSync http://www.browsersync.cn/docs/options/
    // 参数说明：
    //  server -> baseDir 文件位置
    //  online 是否在线
    //  open 是否自动打开浏览器窗口
    browserSync.init({
        server: {
            baseDir: "./"
        },

        online: false,
        open: false
    });

    // 监听各文件变动，并执行相应
    gulp.watch(rocket.js.src, ['js']);
    gulp.watch(rocket.less.src, ['less']);
    gulp.watch("./default/**/*.html").on("change", browserSync.reload);
    gulp.watch("./mobile/**/*.html").on("change", browserSync.reload);
});

gulp.task('js', function() {
    return gulp.src(rocket.js.src)
        .pipe(gulp.dest(rocket.js.dest));
});

// 编译LESS
gulp.task('less', function() {
    return gulp.src(rocket.less.src)
        .pipe(less())
        .pipe(gulp.dest(rocket.less.dest))
        .pipe(reload({stream: true}));
});

gulp.task('build-js', function() {
    return gulp.src(rocket.js.src)
        .pipe(uglify())
        .pipe(gulp.dest(rocket.js.dest));
});

gulp.task('build-less', function() {
    return gulp.src(rocket.less.src)
        .pipe(less())
        .pipe(minifyCSS())
        .pipe(gulp.dest(rocket.less.dest));
});

// 生成所有的文件
gulp.task('build', ['build-js', 'build-less']);

// 默认执行任务
gulp.task('default', ['browser-sync']);



